const Koa = require("koa");
const Router = require("koa-router");
const views = require("koa-views");
const static = require("koa-static");
const koaBody = require("koa-body");

let app = new Koa();
let router = new Router();
const jwt = require("jsonwebtoken");
const koajwt = require("koa-jwt");  //校验token是否正确
app.use(koaBody());
app.use(views(__dirname+"/views"));
app.use(static(__dirname+"/static"));
// 加载登录页面
router.get("/login",async ctx=>{
   await ctx.render("login.html");
});
// 检测是否登录
router.post("/getdata",async ctx=>{
   let info = {}
   if(ctx.request.body.username=="张三"&&ctx.request.body.pwd=="123"){
      info.status=1;//成功就返回这个
      info.data="登录成功"; 
      let token = jwt.sign({//此步骤签发一个token返还给前端
         name:"这里是名字参数"
      },"my_token",{expiresIn:"2h"})//expiresIn过期时间
   //"my_token"是密文密码 很重要
      info.token=token//返还token数据
      /*eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9. 描述头信息 加密属性 
      eyJuYW1lIjoi5ZCN5a2X5Y-C5pWwIiwiaWF0IjoxNjUzNjUzODkyLCJleHAiOjE2NTM2NjEwOTJ9.参数转码
      hXd_0p3R8LHcCY5p4bGzXe5gKFKINv4QNQpIqiRegRE密钥*/ 
   }else{
      info.status=0;//失败就返回这个
      info.data="用户名或者密码不存在"; 
   }
   ctx.body=info;//发送过来的数据用ctx.request.body接受
   //再用ctx.body返还
   // console.log(ctx.request.body);
});
router.get("/getcart",koajwt({secret:"my_token"}), async ctx=>{
   //koajwt({secret:"my_token"})这里装入koa-jwt后用于解密token然后校验是否和签发出去的token一致
   ctx.body={
      name:"判断是否有token",
      age:"登录后"
   }
})

app.use(router.routes());
app.listen(8989);

// 作业：1.复习 2.拖拽方块 --->2个页面的方块拖拽同步